﻿Imports System.Data.OleDb
Module querysPostVentas

    Public Class C_querysPostVentas
        '**************************************************************************************************************************
        'Obtencion de datos de llamada entre fechas
        '**************************************************************************************************************************
        Public Function QxAsesorEntreFechas() As OleDbDataReader
            Using cadenaConexBD()
                Dim drQxAentreF As OleDbDataReader
                Dim fechaInicio As New OleDbParameter("@fechIni", SqlDbType.Date)
                fechaInicio.Value = frmInfoAsesorPostVentas.dtpInicio.Value
                Dim fechaFin As New OleDbParameter("@fechFin", SqlDbType.Date)
                fechaFin.Value = frmInfoAsesorPostVentas.dtpfin.Value
                Dim bucarAuditadoxId As New OleDbCommand("Select id_ado from auditado where noap_ado = '" & frmInfoAsesorPostVentas.cbo_asesor.Text & "'", cadenaConexBD)
                Dim idAuditado = bucarAuditadoxId.ExecuteScalar()

                Dim instruccion As New OleDbCommand("SELECT llamada_pvta.fau_llam, llamada_pvta.fec_llam, llamada_pvta.nlot_llam, tipo_llamada.desc_tllam, auditor.noap_au, auditado.noap_ado, empresa.nomb_empr, saludo_pvta.opt_salu, empatia_pvta.opt_emp, escucha_pvta.opt_esc, indagacion_pvta.opt_ind, disposicion_pvta.opt_disp, precision_pvta.opt_spe, comunicacion_pvta.opt_com, cierre_pvta.opt_cie, llamada_pvta.tfav_llam, llamada_pvta.tctra_llam, llamada_pvta.vato_llam, llamada_pvta.idunico_llam, llamada_pvta.caso_llam FROM ((((((((((((llamada_pvta Inner Join tipo_llamada ON((llamada_pvta.id_tllam = tipo_llamada.id_tllam))) Inner Join auditor ON((llamada_pvta.id_au = auditor.id_au))) Inner Join auditado ON((llamada_pvta.id_ado = auditado.id_ado))) Inner Join saludo_pvta ON((llamada_pvta.vaop_salu = saludo_pvta.vaop_salu))) Inner Join empatia_pvta ON((llamada_pvta.vaop_emp = empatia_pvta.vaop_emp))) Inner Join escucha_pvta ON((llamada_pvta.vaop_esc = escucha_pvta.vaop_esc))) Inner Join indagacion_pvta ON((llamada_pvta.vaop_ind = indagacion_pvta.vaop_ind))) Inner Join disposicion_pvta ON((llamada_pvta.vaop_disp = disposicion_pvta.vaop_disp))) Inner Join precision_pvta ON((llamada_pvta.vaop_pre = precision_pvta.vaop_spe))) Inner Join comunicacion_pvta ON((llamada_pvta.vaop_com = comunicacion_pvta.vaop_com))) Inner Join cierre_pvta ON((llamada_pvta.vaop_cie = cierre_pvta.vaop_cie))) Inner Join empresa ON((auditado.id_empr = empresa.id_empr))) WHERE ((llamada_pvta.fau_llam BETWEEN @fechIni AND @fechFin) AND (llamada_pvta.id_ado = " & idAuditado & "))", cadenaConexBD)
                instruccion.Parameters.Add(fechaInicio)
                instruccion.Parameters.Add(fechaFin)

                drQxAentreF = instruccion.ExecuteReader()
                Return drQxAentreF
                drQxAentreF.Close()
            End Using
        End Function
        '**************************************************************************************************************************
        'insercion en tabla temporal los datos de llamada para reporte
        '**************************************************************************************************************************
        Public Sub insertarTemporal(ByVal v01 As String, ByVal v02 As String, ByVal v03 As String, ByVal v04 As String, ByVal v05 As String, ByVal v06 As String, ByVal v07 As String, ByVal v08 As String, ByVal v09 As String, ByVal v10 As String, ByVal v11 As String, ByVal v12 As String, ByVal v13 As String, ByVal v14 As String, ByVal v15 As String, ByVal v16 As String, ByVal v17 As String, ByVal v18 As Double, ByVal v19 As String, ByVal v20 As String)
            Try
                cadenaConexBD()
                Dim instruccion As New OleDbCommand("Insert into temporal_reportes_pvta (fecha_auditoria, fecha_llamada, numero_lote, tipo_llamada, auditor, auditado, empresa, saludo, empatia, indagacion, disposicion, compromiso, informacion, comunicacion, credibilidad, a_favor, en_contra, puntos, idunico_llam, caso_llam) values ('" & v01 & "','" & v02 & "','" & v03 & "','" & v04 & "','" & v05 & "','" & v06 & "','" & v07 & "','" & v08 & "','" & v09 & "','" & v10 & "','" & v11 & "','" & v12 & "','" & v13 & "','" & v14 & "','" & v15 & "','" & v16 & "','" & v17 & "','" & v18 & "','" & v19 & "','" & v20 & "')", cadenaConexBD)
                instruccion.ExecuteNonQuery()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                cadenaConexBD.Close()
            End Try
        End Sub
        '**************************************************************************************************************************
        'Limpieza de tabla temporal de reportes
        '**************************************************************************************************************************
        Public Sub eliminarTemporales()
            Try
                cadenaConexBD()
                Dim instruccion As New OleDbCommand("delete * from temporal_reportes_pvta ", cadenaConexBD)
                instruccion.ExecuteNonQuery()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                cadenaConexBD.Close()
            End Try
        End Sub
        '**************************************************************************************************************************
        'Obtencion de datos de llamada de una empresa entre fechas
        '**************************************************************************************************************************
        Public Function QxEmpresaEntreFechas() As OleDbDataReader
            Using cadenaConexBD()
                Dim drQxEentreF As OleDbDataReader
                Dim fechaInicio As New OleDbParameter("@fechIni", SqlDbType.Date)
                fechaInicio.Value = frmInfoEmprPostVentas.dtpInicio.Value
                Dim fechaFin As New OleDbParameter("@fechFin", SqlDbType.Date)
                fechaFin.Value = frmInfoEmprPostVentas.dtpfin.Value
                Dim bucarEmpresaxId As New OleDbCommand("SELECT id_empr FROM empresa WHERE nomb_empr = '" & frmInfoEmprPostVentas.cbo_empresa.Text & "'", cadenaConexBD)
                Dim idEmpresa = bucarEmpresaxId.ExecuteScalar()
                Dim instruccion As New OleDbCommand("SELECT llamada_pvta.fau_llam, llamada_pvta.fec_llam, llamada_pvta.nlot_llam, tipo_llamada.desc_tllam, auditor.noap_au, auditado.noap_ado, empresa.nomb_empr, saludo_pvta.opt_salu, empatia_pvta.opt_emp, escucha_pvta.opt_esc, indagacion_pvta.opt_ind, disposicion_pvta.opt_disp, precision_pvta.opt_spe, comunicacion_pvta.opt_com, cierre_pvta.opt_cie, llamada_pvta.tfav_llam, llamada_pvta.tctra_llam, llamada_pvta.vato_llam, llamada_pvta.idunico_llam, llamada_pvta.caso_llam FROM ((((((((((((llamada_pvta Inner Join tipo_llamada ON((llamada_pvta.id_tllam = tipo_llamada.id_tllam))) Inner Join auditor ON((llamada_pvta.id_au = auditor.id_au))) Inner Join auditado ON((llamada_pvta.id_ado = auditado.id_ado))) Inner Join saludo_pvta ON((llamada_pvta.vaop_salu = saludo_pvta.vaop_salu))) Inner Join empatia_pvta ON((llamada_pvta.vaop_emp = empatia_pvta.vaop_emp))) Inner Join escucha_pvta ON((llamada_pvta.vaop_esc = escucha_pvta.vaop_esc))) Inner Join indagacion_pvta ON((llamada_pvta.vaop_ind = indagacion_pvta.vaop_ind))) Inner Join disposicion_pvta ON((llamada_pvta.vaop_disp = disposicion_pvta.vaop_disp))) Inner Join precision_pvta ON((llamada_pvta.vaop_pre = precision_pvta.vaop_spe))) Inner Join comunicacion_pvta ON((llamada_pvta.vaop_com = comunicacion_pvta.vaop_com))) Inner Join cierre_pvta ON((llamada_pvta.vaop_cie = cierre_pvta.vaop_cie))) Inner Join empresa ON((llamada_pvta.id_empr = empresa.id_empr))) WHERE ((llamada_pvta.fau_llam BETWEEN @fechIni AND @fechFin) AND (llamada_pvta.id_empr = " & idEmpresa & "))", cadenaConexBD)
                instruccion.Parameters.Add(fechaInicio)
                instruccion.Parameters.Add(fechaFin)
                drQxEentreF = instruccion.ExecuteReader()
                Return drQxEentreF
                drQxEentreF.Close()
            End Using
        End Function
        '**************************************************************************************************************************
        'Obtencion de datos de llamada de una empresa entre fechas
        '**************************************************************************************************************************
        Public Sub insertarTemporalEmpresa(ByVal v01 As String, ByVal v02 As String, ByVal v03 As String, ByVal v04 As String, ByVal v05 As String, ByVal v06 As String, ByVal v07 As String, ByVal v08 As String, ByVal v09 As String, ByVal v10 As String, ByVal v11 As String, ByVal v12 As String, ByVal v13 As String, ByVal v14 As String, ByVal v15 As String, ByVal v16 As String, ByVal v17 As String, ByVal v18 As Double, ByVal v19 As String, ByVal v20 As String)
            Try
                cadenaConexBD()
                Dim instruccion As New OleDbCommand("Insert into temporal_empresa_pvta (fecha_auditoria, fecha_llamada, numero_lote, tipo_llamada, auditor, auditado, empresa, saludo, empatia, indagacion, disposicion, compromiso, informacion, comunicacion, credibilidad, a_favor, en_contra, puntos, idunico_llam, caso_llam) values ('" & v01 & "','" & v02 & "','" & v03 & "','" & v04 & "','" & v05 & "','" & v06 & "','" & v07 & "','" & v08 & "','" & v09 & "','" & v10 & "','" & v11 & "','" & v12 & "','" & v13 & "','" & v14 & "','" & v15 & "','" & v16 & "','" & v17 & "','" & v18 & "','" & v19 & "','" & v20 & "')", cadenaConexBD)
                instruccion.ExecuteNonQuery()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                cadenaConexBD.Close()
            End Try
        End Sub
        Public Sub eliminarTemporalesPorEmpresa()
            Try
                cadenaConexBD()
                Dim instruccion As New OleDbCommand("delete * from temporal_empresa_pvta ", cadenaConexBD)
                instruccion.ExecuteNonQuery()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                cadenaConexBD.Close()
            End Try
        End Sub
    End Class
End Module
